PrecSezione 8.5: Reti per trasmissione dati SuCapitolo 8: Traffico, code e reti a pacchetto Capitolo 9: Densità spettrale e filtraggioSegue

## 8.6Appendici

In questa sezione trova spazio la descrizione di aspetti delle reti per dati come Internet, e le reti ip e atm, che costituiscono l’immediata applicazione degli argomenti esposti nel capitolo, ossia i sistemi a coda ed a trasmissione di pacchetto, e le architetture protocollari.Viceversa, la realizzazione di sistemi arientati alla perdita ed a commutazione di circuito è discussa al Cap. 6↑.
Iniziamo subito con il dire che il modello a strati iso-osi è una astrazione concettuale utile per individuare raggruppamenti di funzioni, e serve ottimamente come modello per stimolare l’interoperabilità di apparati di diversi costruttori. D’altra parte, alcune delle realizzazioni esistenti (come ad esempio internet) si sono sviluppate precedentemente alla definizione del modello, mentre altre (come atm) seguono filosofie che solo successivamente sono state incorporate nel modello di riferimento. Pertanto, utilizzeremo le classificazioni ISO-OSI come parametro di riferimento, mediante il quale analizzare le funzioni delle reti reali.

### 8.6.1La rete Internet↓

#### 8.6.1.1Storia

Nel 1964 L. Kleinrock (ucla) propone un modello di rete non gerarchica e con parti ridondanti, che realizza una modalità di trasferimento senza connessione e senza garanzie di qualità del servizio, rimandando queste ultime ai livelli superiori dell’architettura protocollare. Tale tipologia di servizio è oggi indicata con il termine best effort [323] [323]Migliore sforzo, ossia la rete dà il massimo, senza però garantire nulla.. Nel ’69 sono operativi cinque nodi nelle università americane, e nel ’72 avviene la prima dimostrazione pubblica di arpanet, basata su ncp. Nel ’73 Kahn e Cerf iniziano a definire TCP, da cui viene successivamente separato l’IP per la convenienza di non dover necessariamente aprire sempre una connessione. Fino all’80, il DoD [324] [324]Department of Defense. sovvenziona le università per implementare in ambiente unix i protocolli, che nel frattempo si vanno arricchendo di servizi, mentre la trasmissione Ethernet (del 1973) è adottata per realizzare lan.
Nel 1983 il DoD decreta che tutti i calcolatori connessi a arpanet adottino i protocolli TCP/IP, e separa la rete in due parti: una civile (arpanet) ed una militare (milnet). Negli anni seguenti i finanziamenti dalla National Science Foundation permettono lo sviluppo di una rete di trasporto a lunga distanza e di reti regionali, che interconnettono lan di altre università e di enti di ricerca alla rete arpanet, alla quale si collegano poi anche le comunità scientifiche non americane.
Nel 1990 arpanet cessa le sue attività, e Barners-Lee (cern) definisce il WWW, mentre nel ’93 Andreessen (ncsa) sviluppa il primo browser WWW. Dal 1995 l’nsf non finanzia più la rete di interconnessione, ed il traffico inizia ad essere trasportato da operatori privati.

#### 8.6.1.2Le caratteristiche

La parola Internet in realtà è composta da due parole, Inter e Net, in quanto le caratteristiche della rete Internet sono quelle di fondere in una unica architettura una infinità di singole reti locali, potenzialmente disomogenee, e permettere la comunicazione tra i computer delle diverse sottoreti.
Ogni nodo della rete è connesso ad una rete locale (lan [325] [325]Local Area Network, ossia rete locale. Con questo termine si indica un collegamento che non si estende oltre (approssimativamente) un edificio.), la quale a sua volta è interconnessa ad Internet mediante dei nodi detti router [326] [326]La funzione di conversione di protocollo tra reti disomogenee è detta di gateway, mentre l’interconnessione tra reti locali è svolta da dispositivi bridge oppure da ripetitori se le reti sono omogenee. Con il termine router si indica più propriamente il caso in cui il nodo svolge funzioni di instradamento, che tipicamente avviene nello strato di rete. Nel caso in cui invece si operi un instradamento a livello dello strato di collegamento, ossia nell’ambito di sezioni diverse (collegate da bridge o ripetitori) di una stessa LAN, il dispositivo viene detto detto switch. Infine, un firewall opera a livello di trasporto, e permette di impostare regole di controllo per restringere l’accesso alla rete interna in base all’indirizzo di sorgente, al tipo di protocollo, e/o a determinati servizi . che sono collegati ad una o più lan e ad Internet, e svolgono la funzione di instradare le comunicazioni verso l’esterno. L’instradamento ha luogo in base ad un indirizzo IP [327] [327]IP = Internet Protocol., che individua i singoli nodi in modo univoco su scala mondiale.
Come anticipato, lo strato di rete (o strato IP) realizza un modo di trasferimento a datagramma e non fornisce garanzie sulla qualità di servizio (QoS, Quality o Service) in termini di ritardi, errori e pacchetti persi. La situazione è mitigata dalla strato di trasporto (TCP, Transmission Control Protocol) che offre ai processi applicativi un servizio a circuito virtuale.
I protocolli di Internet sono realizzati in software e sono pubblici; gli utenti stessi e molte sottoreti private contribuiscono significativamente al trasporto, all’indirizzamento, alla commutazione ed alla notifica delle informazioni. Queste sono alcune ragioni fondamentali per cui Internet non è di nessuno ed è un patrimonio dell’umanità.

#### 8.6.1.3Gli indirizzi↓

Strato | Indirizzo
Applicazione | protocollo://nodo.dominio.tld
Trasporto | socket TCP o porta
Rete | indirizzo IP x.y.w.z
Collegamento | indirizzo Ethernet a:b:c:d:e:f

Iniziamo l’argomento discutendo subito la stratificazione degli indirizzi coinvolti in una comunicazione via Internet. Ogni livello funzionale infatti utilizza le proprie convenzioni di indirizzamento, come illustrato nella tabella a fianco. Se a prima vista questa abbondanza di indirizzi può apparire esagerata, è proprio in questo modo che si realizza l’interoperabilità tra ambienti di rete differenti.
IP ed Ethernet
I computer connessi ad Internet (detti nodi) sono le sorgenti e le destinazioni dell’informazione, e sono inviduati da un indirizzo IP, che consiste in un gruppo di 4 byte [328] [328]Con 4 byte si indirizzano (in linea di principio) 232= 4.29⋅109 diversi nodi (più di 4 miliardi). E’ tuttora in sviluppo il cosiddetto IPv6, che estenderà l’indirizzo IP a 16 byte, portando la capacità teorica a 3.4⋅1038 nodi. L’IPv6 prevede inoltre particolari soluzioni di suddivisione dell’indirizzo, allo scopo di coadiuvare le operazioni di routing. e che si scrive x.y.w.z con ognuna delle 4 variabili pari ad un numero tra 0 e 255.
I nodi sono connessi alla rete mediante una interfaccia a volte indicata come MAC (Media Access Control). Prendendo come esempio [329] [329]Evidentemente esistono molte diverse possibilità di collegamento ad Internet, come via telefono (tramite provider), collegamento satellitare, Frame Relay, linea dedicata, isdn, adsl... ma si preferisce svolgere un unico esempio per non appesantire eccessivamente l’esposizione. La consapevolezza delle molteplici alternative consente ad ogni modo di comprendere la necessità di separare gli strati di trasporto e di rete dall’effettiva modalità di trasmissione. i nodi connessi ad una LAN Ethernet, l’interfaccia di rete è individuata a sua volta da un indirizzo Ethernet composto da 6 byte. Quest’ultimo è unico in tutto il mondo, ed impresso dal costruttore nella scheda di interfaccia. L’indirizzo Ethernet viene però utilizzato solo nell’ambito della LAN di cui il nodo fa parte, ossia dopo che i pacchetti sono stati instradati dai router, per mezzo dell’indirizzo IP, verso la LAN.
Sottoreti↓
Ogni nodo conosce, oltre al proprio indirizzo IP, anche una maschera di sottorete composta da una serie di uni seguita da zeri, in numero complessivo di 32 bit, tanti quanti ne sono presenti nell’indirizzo IP. Il termine maschera è dovuto all’operazione di AND binario (vedi tabella) operata tra la maschera e gli indirizzi IP, per determinare se questi appartengano alla propria stessa LAN oppure risiedano altrove.

Indirizzo IP | Maschera Sottorete | Indirizzo sottorete
151.100.8.33 | 255.255.255.0 | 151.100.8.0

Nel caso in cui la sottorete di un nodo Y verso cui il nodo X deve inviare un pacchetto è la stessa su cui è connesso X, allora questi può individuare l’indirizzo Ethernet del destinatario [330] [330]Mostriamo in seguito che questo avviene mediante il protocollo ARP. ed inviargli il pacchetto direttamente. In caso contrario, X invierà il pacchetto al proprio default gateway verso Internet.
Intranet
Alcuni gruppi di indirizzi IP (come quelli 192.168.w.z oppure 10.y.w.z ) non vengono instradati dai router, e possono essere riutilizzati nelle reti private di tutto il mondo per realizzare le cosiddette reti intranet operanti con gli stessi protocolli ed applicativi che funzionano via Internet.
Domain Name Server↓ (dns)
L’utente di una applicazione internet in realtà non è a conoscenza degli indirizzi IP dei diversi nodi, ma li identifica per mezzo di nomi simbolici del tipo nodo.dominio.tld, detti anche indirizzi Internet. Il processo di risoluzione che individua l’indirizzo IP associato al nome avviene interrogando un particolare nodo, il Domain Name Server (servente dei nomi di dominio). La struttura dei nomi, scandita dai punti, individua una gerarchia di autorità per i diversi campi. Il campo tld è chiamato dominio di primo livello (top level domain [331] [331]I top level domain possono essere pari ad un identificativo geografico (.it, .se, .au...) od una delle sigle .com, .org, .net, .mil, .edu, che sono quelle utilizzate quando internet era solo americana.), mentre il campo dominio in genere è stato registrato da qualche organizzazione che lo giudica rappresentativo della propria offerta informativa. Il campo nodo rappresenta invece una ben determinata macchina, il cui indirizzo Internet completo è nodo.dominio.tld, e che non necessariamente è collegato alla stessa LAN a cui sono connessi gli altri nodi con indirizzo che termina per dominio.tld.
Quando un nodoX generico deve comunicare con nodoY.dominio.tld, interroga il proprio DNS [332] [332]Il “proprio” DNS viene configurato per l’host in modo fisso, oppure in modo dinamico da alcuni Service Provider raggiungibili per via telefonica, e convenientemente corrisponde ad un nodo situato “vicino” al nodo che lo interroga. per conoscerne l’IP. Nella rete sono presenti molti DNS, alcuni dei quali detengono informazioni autorevoli [333] [333]Chi registra il dominio deve disporre necessariamente di un DNS in cui inserire le informazioni sulle corrispondenze tra i nomi dei nodi del proprio dominio ed i loro corrispondenti indirizzi IP. In tal caso quel DNS si dice autorevole per il dominio ed è responsabile di diffondere tali informazioni al resto della rete. riguardo ai nodi di uno o più domini, altri (i DNS radice, o root) detengono le informazioni relative a quali DNS siano autorevoli per i domini di primo livello, ed altri fanno da tramite tra i primi due ed i client che richiedono una risoluzione di indirizzo. Se il DNS di nodoX non è autorevole per nodoY, allora [334] [334]In realtà esiste anche una diversa modalità operativa, che consiste nel delegare la ricerca ad un diverso DNS (detto forwarder), il quale attua lui i passi descritti appresso, e provvede per proprio conto alla risoluzione, il cui esito è poi comunicato al primo DNS e da questi ad hostX. Il vantaggio di tale procedura risiede nella maggiore ricchezza della cache (descritta appresso) di un DNS utilizzato intensivamente. provvede ad inoltrare la richiesta, interrogando prima un DNS radice per individuare chi è autorevole per .tld, quindi interroga questo per trovare chi è autorevole per .dominio.tld, e quindi usa la risposta ottenuta per dirigere la richiesta di risoluzione originaria. Se la cosa può sembrare troppo macchinosa per funzionare bene, è perchè la stessa sequenza di operazioni non deve essere effettuata sempre: il DNS utilizzato da nodoX riceve infatti, assieme all’IP di nodoY, anche una informazione detta time to live (ttl o tempo di vita) che descrive la scadenza della coppia nome-IP ottenuta. Genericamente il ttl è di qualche giorno, e fino alla sua scadenza il DNS ricorda [335] [335]Il DNS ricorda anche le altre corrispondenze ottenute, come il DNS autorevole per .tld e per .dominio.tld; nel caso infine in cui si sia utilizzato un forwarder, sarà quest’ultimo a mantenere memoria delle corrispondenze per i DNS intermedi. la corrispondenza, in modo da fornire la propria copia in corrispondenza delle richieste future, e ridurre sensibilmente il traffico legato alla risoluzione degli indirizzi Internet. L’insieme delle risoluzioni apprese è denominata cache del DNS [336] [336]Cache è un termine generico, che letteralmente si traduce nascondiglio dei viveri, e che viene adottato ogni volta si debba indicare una memoria che contiene copie di riserva, o di scorta....
Indirizzi TCP
Si è detto che ogni nodo è individuato in Internet mediante il proprio indirizzo IP, ma questo non è sufficiente ad indicare con quale particolare programma (che può essere uno specifico server come nel caso del DNS) si vuole entrare in comunicazione. I programmi che sono pronti a ricevere connessioni si pongono in ascolto su ben determinate porte (o socket [337] [337]Socket è un termine che corrisponde alla... presa per l’energia elettrica casalinga, ed in questo contesto ha il significato di una presa a cui si “attacca” il processo che richiede la comunicazione. Per l’esattezza, un Socket internet è individuato dal numero di porta tcp e dall’indirizzo ip.), identificate da numeri [338] [338]Spesso gli indirizzi che identificano i punti di contatto di servizi specifici vengono indicati come Service Access Point (SAP), anche per situazioni differenti dal caso specifico delle porte del TCP., e che sono referenziati in modo simbolico (es. http://, ftp://) dagli applicativi di utente che si rivolgono allo strato di trasporto (il TCP) per stabilire un collegamento con un server presente su di un nodo remoto.
Alcuni servizi rispondono ad indirizzi ben noti, fissi per tutti i nodi, in quanto il chiamante deve sapere a priori a quale porta connettersi. Il nodo contattato invece, apre con il chiamante una connessione di ritorno, su di un numero di porta diverso, che è stato comunicato dal chiamante al momento della richiesta di connessione, e per il quale il chiamante non ha già aperto altre connessioni differenti.

#### 8.6.1.4TCP↓

Discutiamo ora del TCP [339] [339]TCP = Transport Control Protocol., che offre ai processi applicativi un servizio di trasporto a circuito virtuale, attaccato ad una porta [340] [340]Il numero di porta costituisce in pratica l’identificativo di connessione del circuito virtuale. Nel caso in cui un server debba comunicare con più client, dopo avere accettato la conessione giunta su di una porta ben nota, apre con i client diversi canali di ritorno, differenziati dall’uso di porte di risposta differenti.
La lista completa dei servizi standardizzati e degli indirizzi ben noti (socket) presso i quali i serventi sono in attesa di richieste di connessione, è presente in tutte le distribuzioni Linux nel file /etc/services.
di un nodo remoto individuato dall’indirizzo IP. Il suo compito è quello di ricevere dai processi applicativi dei dati, suddividerli in pacchetti, ed inviarli al suo pari che svolge il processo inverso.
Il pacchetto TCP
La struttura di un pacchetto TCP è mostrata in figura, e comprende una intestazione composta da 6 gruppi (o più) di 4 byte per un minimo di 192 bit, a cui segue un numero variabile di gruppi di 4 byte di Dati, provenienti dagli strati applicativi superiori.

1 8 | 16 24
Porta Sorgente | Porta Destinazione
Numero di Sequenza (Tx)
Numero di Riscontro (Rx)
Offset | Riserva | Contr. | Finestra
Checksum | Puntatore Urgente
Opzioni | Riempimento
Dati
Dati
. . .

Troviamo subito i numeri delle porte a cui si riferisce la connessione, mentre gli indirizzi IP sono aggiunti dallo strato di rete. I numeri di Sequenza e di Riscontro servono rispettivamente a numerare i bytes dei pacchetti uscenti, ed a notificare l’altro lato del collegamento del numero di sequenza del prossimo byte che si aspetta di ricevere [341] [341] Il numero di sequenza si incrementa ad ogni pacchetto di una quantità pari alla sua dimensione in bytes, ed ha lo scopo di permettere le operazioni di controllo di flusso. Il valore iniziale del numero di sequenza e di riscontro è diverso per ogni connessione, e generato in modo pseudo-casuale da entrambe le parti in base ai propri orologi interni, allo scopo di minimizzare i problemi dovuti all’inaffidabilità dello strato di rete (l’IP) che può perdere o ritardare i datagrammi, nel qual caso il TCP trasmittente ri-invia i pacchetti precedenti dopo un time-out. Questo comportamento può determinare l’arrivo al lato ricevente di un pacchetto duplicato, e consegnato addirittura dopo che la connessione tra i due nodi è stata chiusa e riaperta. In tal caso però la nuova connessione adotta un diverso numero di sequenza iniziale, cosicchè il pacchetto duplicato e ritardato risulta fuori sequenza, e non viene accettato., riscontrando implicitamente come correttamente arrivati i pacchetti con numero di sequenza più basso.
Offset (4 bit) codifica il numero di parole da 4 byte dell’intestazione, mentre nei 6 bit Riservati non è mai stato scritto nulla. I 6 bit del campo Controllo hanno ognuno un nome ed un significato preciso, qualora posti ad uno. Il primo (urg) indica che il campo urgent pointer contiene un valore significativo; ack indica che si sta usando il Numero di Riscontro; psh indica un pacchetto urgente che non può rispettare la coda in ricezione; rst segnala un malfunzionamento e impone il reset della connessione; syn è pari ad uno solo per il primo pacchetto inviato per richiedere di creare una connessione; fin indica che la sorgente ha esaurito i dati da trasmettere.
I 16 bit di Finestra rappresentano il numero di byte che, a partire dal numero espresso dal Numero di Riscontro, chi invia il pacchetto è in grado di ricevere, ed il suo utilizzo sarà meglio illustrato tra breve nel contesto del controllo di flusso. Il Checksum serve al ricevente per verificare se si sia verificato un errore, il Puntatore Urgente contiene il numero di sequenza dell’ultimo byte di una sequenza di dati urgenti, e le Opzioni (di lunghezza variabile) sono presenti solo raramente, ed utilizzate a fini di controllo, ad esempio per variare la dimensione della finestra. Infine, il Riempimento conclude l’ultima parola da 32 bit.
Uno stesso pacchetto TCP può svolgere funzioni di sola segnalazione, o di sola trasmissione dati, od entrambe.
Apertura e chiusura della connessione
Il TCP offre un servizio di di trasporto a circuito virtuale, e prima di inviare dati, deve effettuare un colloquio iniziale con il nodo remoto di destinazione. In particolare, il colloquio ha lo scopo di accertare la disponibilità del destinatario ad accettare la connessione, e permette alle due parti di scambiarsi i rispettivi numeri di sequenza descritti alla nota 120↑.
L’estremo che viene “chiamato” riveste il ruolo di server, e l’altro di client. Dato che anche quest’ultimo deve riscontrare il numero di sequenza fornito dal server, occorrono tre pacchetti per terminare il dialogo, che prende il nome di three way handshake↓ [342] [342]handshake = stretta di mano.. Il diagramma a lato mostra l’evoluzione temporale del colloquio tra un processo applicativo client (A), ed un server (B) che si pone in ascolto, mostrando come al primo syn che pone NSA=x, ne segua un altro che pone NSB=y, seguito a sua volta dall’ack di chi ha iniziato [343] [343]Per ciò che riguarda i valori dei numeri di riscontro NR, questi sono incrementati di 1, perchè la finestra (descritta nel seguito) inizia dai bytes del prossimo pacchetto, a cui competeranno appunto valori di NS incrementati di uno.. La chiusura può avvenire per diverse cause: o perchè è terminato il messaggio, segnalato dal bit fin, o per situazioni anomale, che il TCP indica con il bit rst.
Protocollo a finestra
Allo scopo di realizzare un controllo di flusso, il TCP prevede l’uso dell’NR inviato dal ricevente per dosare il ritmo con cui trasmettere i propri pacchetti.
La lunghezza di Finestra comunicata con il syn del ricevente, determina la quantità di memoria riservata per i buffer dedicati alla connessione, che viene gestita come una memoria a scorrimento o finestra scorrevole↓ (sliding window). Questa memoria è presente per gestire i casi di pacchetti ritardati o fuori sequenza↓, e contiene i bytes già trasmessi. Il trasmittente (vedi figura) non fa avanzare il limite inferiore finchè non riceve un riscontro↓ con NR maggiore di tale limite. In questo modo non occorre attendere il riscontro di tutti i bytes, o di tutti i pacchetti (che devono comunque essere di dimensione inferiore alla finestra), ma ci può avvantaggiare trasmettendo l’intero contenuto della finestra.
Una finestra del tutto analoga è utilizzata dal ricevente, allo scopo di ricomporre l’ordine originario dei pacchetti consegnati disordinatamente dallo strato IP di rete. Non appena il ricevente completa un segmento contiguo al limite inferiore, sposta quest’ultimo in avanti di tanti bytes quanti ne è riuscito a leggere in modo contiguo, ed invia un riscontro con NR pari al più basso numero di byte che ancora non è pervenuto [344] [344]Il riscontro può viaggiare su di un pacchetto già in “partenza” con un carico utile di dati e destinato al nodo a cui si deve inviare il riscontro. In tal caso quest’ultimo prende il nome di piggyback (rimorchio), o riscontro rimorchiato..
Nel caso in cui sia settato il bit urg [345] [345]In tal caso, il campo Puntatore Urgente contiene il numero di sequenza del byte che delimita superiormente i dati che devono essere consegnati urgentemente., si stanno inviando dati urgenti fuori sequenza, e che non devono rispettare il protocollo a finestra, come ad esempio per recapitare un segnale di interrupt relativo ad una sessione Telnet per terminare una applicazione remota.
Controllo di errore↓
Trascorso un certo tempo (detto timeout) nell’attesa di un riscontro, il trasmittente ritiene che alcuni pacchetti sono andati persi, e li re-invia [346] [346]Il mancato invio del riscontro può anche essere causato dal verificarsi di un cecksum errato dal lato ricevente, nel qual caso quest’ultimo semplicemente evita di inviare il riscontro, confidando nella ritrasmissione per timeout.. Il valore del timeout viene calcolato dinamicamente dal TCP in base alle sue misure di round-trip delay [347] [347]Con licenza poetica: il ritardo del girotondo, che qui raffigura un percorso di andata e ritorno senza soste., ossia del tempo che intercorre in media tra invio di un pacchetto e ricezione del suo riscontro. In questo modo il TCP si adatta alle condizioni di carico della rete ed evita di ri-spedire pacchetti troppo presto o di effettuare attese inutili. In particolare, nel caso di rete congestionata aumenta la frequenza dei pacchetti persi, e valori di timeout troppo ridotti potrebbero peggiorare la situazione.
Controllo di flusso↓
Il meccanismo a finestra scorrevole determina, istante per istante, il numero massimo di bytes che possono essere trasmessi verso il destinatario, e pertanto consente al nodo meno veloce di adeguare la velocità di tramissione alle proprie capacità. La dimensione della finestra può essere variata (su iniziativa del ricevente) nel corso della connessione, in accordo al valore presente nel campo Finestra dell’intestazione TCP. Ad esempio, una connessione può iniziare con un dimensione di finestra ridotta, e poi aumentarla nel caso in cui non si verifichino errori, la rete sopporti il traffico, ed i nodi abbiano memoria disponibile.
Controllo di congestione↓
Il TCP può usare la sua misura di round-trip delay come un indicatore di congestione della rete, e lo scadere di un timeout come un segnale del peggioramento della congestione. In tal caso quindi, può essere ridotta la dimensione della finestra di trasmissione, caricando così di meno la rete.
UDP↓
Lo User Datagram Protocol è ancora un protocollo di trasporto, che opera senza connessione, e sostituisce il TCP per inviare pacchetti isolati, o serie di pacchetti la cui ritrasmissione (se perduti) sarebbe inutile. Ad esempio, è utilizzato nella trasmissione di dati in tempo reale, oppure per protocolli di interrogazione e controllo come il dns.

#### 8.6.1.5IP↓

L’Internet Protocol costituisce l’ossatura della rete internet, realizzandone i servizi di rete ed interfacciando le diverse sottoreti a cui sono connessi i nodi. Le sue principali funzioni sono pertanto l’indirizzamento, l’instradamento e la variazione della dimensione [348] [348]L’IP può trovarsi a dover inoltrare i pacchetti su sottoreti che operano con dimensioni di pacchetto inferiori. Per questo, deve essere in grado di frammentare il pacchetto in più datagrammi, e di ricomporli nell’unità informativa originaria all’altro estremo del collegamento. dei pacchetti prodotti dal TCP o da altri protocolli degli strati superiori. Ogni pacchetto è inviato come un messaggio indipendente, in modalità datagramma; la consegna dei datagrammi non è garantita [349] [349]Si suppone infatti che le sottoreti a cui sono connessi i nodi non garantiscano affidabilità. Ciò consente di poter usare sottoreti le più generiche (incluse quelle affidabili, ovviamente)., e questi possono essere persi, duplicati o consegnati fuori sequenza.
l’IP riceve dallo strato superiore (il TCP od un altro protocollo) un flusso di byte suddivisi in pacchetti, a cui si aggiunge l’indirizzo IP di destinazione; tale flusso è utilizzato per riempire un proprio buffer di dimensione opportuna, che quando pieno (od al termine del pacchetto ricevuto dall’alto) è incapsulato aggiungendo una intestazione (l’header) che codifica la segnalazione dello strato di rete realizzato dal protocollo IP.
L’intestazione IP
contiene le informazioni mostrate alla figura successiva.

1 | 5 | 9 | 17 | 20 32
VER | HLEN | TOS | TLEN
Identificazione | Flags | Frag. Offset
TTL | Protocollo | Checksum
IP Address Sorgente
IP Adddress Destinazione
Opzioni | Riempimento

Il campo VER indica quale versione si sta utilizzando, e permette sperimentazioni e mi-glioramenti senza interrompere il servizio. HLEN e TLEN indicano rispettivamente la lunghezza dell’header e di tutto il pacchetto, mentre TOS codifica un Type of Service per differenziare ad esempio la QoS [350] [350]La Qualità del Servizio richiesta per il particolare datagramma può esprimere necessità particolari, come ad esempio il ritardo massimo di consegna. La possibilità di esprimere questa esigenza a livello IP fa parte dello standard, ma per lunghi anni non se ne è fatto uso. L’avvento delle comunicazioni multimediali ha risvegliato l’interesse per il campo tos. richiesta. L’identifi-cazione riporta lo stesso valore per tutti i frammenti di uno stesso datagramma, mentre l’Offset di frammento indica la posizione del frammento nel datagramma (con frammenti di dimensione multipla di 8 byte).
Solo 2 dei tre bit di Flag sono usati, df (Don’t Fragment) per richiedere alla rete di non frammentare il datagramma, e mf (More Fragments) per indicare che seguiranno altri frammenti. Il TTL (Time To Live) determina la massima permanenza del pacchetto nella rete [351] [351]Lo scopo del ttl è di evitare che si verifichino fenomeni di loop infinito, nei quali un pacchetto “rimbalza” tra due nodi per problemi di configurazione. Per questo, ttl è inizializzato al massimo numero di nodi che il pacchetto può attraversare, e viene decrementato da ogni nodo che lo riceve (e ritrasmette). Quando ttl arriva a zero, il pacchetto è scartato., il protocollo indica a chi consegnare il datagramma all’arrivo (ad es. TCP o UDP), e Checksum serve per verificare l’assenza di errori nell’header [352] [352]In presenza di un frammento ricevuto con errori nell’header, viene scartato tutto il datagramma di cui il frammento fa parte, delegando allo strato superiore le procedure per l’eventuale recupero dell’errore..
Gli Indirizzi IP di sorgente e destinazione hanno l’evidente funzione di recapitare correttamente il messaggio, mentre il campo Opzioni ha una lunghezza variabile, può essere omesso, e consente ad esempio di richiedere il tracciamento della serie di router attraversati.
Indirizzamento e Routing↓
A pagina 1↑ si è anticipata la relazione che lega la parte iniziale dell’indirizzo IP ad una determinata sottorete, in modo da partizionare i 232 indirizzi su di una gerarchia a due livelli e delegare la consegna all’host finale ad uno o più router responsabili di servire la sottorete [353] [353]Possiamo portare come analogia un indirizzo civico, a cui il postino consegna la corrispondenza, che viene poi smistata ai singoli condomini dal portiere dello stabile. Il servizio postale, così come la rete Internet, non ha interesse di sapere come sono suddivise le sottoreti delle diverse organizzazioni, ed i router instradano i pacchetti IP in base alla parte “rete” dell’indirizzo, delegando ai router della rete di destinazione il completamento dell’instradamento.. In realtà la gerarchia presenta una ulteriore suddivisione, dettata sia da esigenze amministrative che funzionali.
I bit più significativi dell’indirizzo IP identificano 5 diversi gruppi (o classi) di indirizzi, descritti dalla seguente tabella :

Inizio IP addr | Classe | bit rete/nodo | N. reti | N. nodi per rete
0 | A | 7/24 | 128 | 16 777 216
10 | B | 14/16 | 16 384 | 65 536
110 | C | 21/8 | 2 097 152 | 256
1110 | D | 28 bit di indirizzo multicast per 268 435 456 canali
11110 | E | 27 bit per usi futuri e ricerca

Quando una organizzazione decide di essere presente in internet, richiede l’assegnazione di un lotto di indirizzi IP ad apposti organismi, i quali attribuiscono all’organizzazione un gruppo di indirizzi di classe A, B o C in base al numero di nodi che l’organizzazione prevede di mettere in rete. Una rete in classe B ad esempio è individuata da 14 bit (ossia, assieme ai bit di classe, dai primi due bytes dell’indirizzo IP), e quindi esistono 214= 16384 diverse reti in classe B, ognuna con una capacità di 216= 65536 diversi nodi. Chi è intestatario di un gruppo di indirizzi, provvede ad assegnarli ai singoli nodi della propria sottorete.
Subnetting↓ e Supernetting
Osserviamo ora che la maschera di sottorete presentata a pag. 1↑ non coincide con il gruppo di bit che identifica la classe e la rete: infatti, l’insieme di indirizzi 151.100.x.y corrisponde ad una rete in classe B, mentre la maschera di sottorete 255.255.255.0 individua una sottorete in classe C. Praticamente, la rete in classe B è stata ulteriormente suddivisa (subnettata) in 256 sottoreti di classe C, permettendo di realizzare un instradamento gerarchico su due livelli nell’ambito dell’organizzazione intestaria della rete in classe B [354] [354]In questo caso, l’Università di Roma “La Sapienza” è intestataria della rete 151.100.. L’operazione inversa (detta supernetting), ossia quella di aggregare più reti di dimensione ridotta in una di dimensione maggiore, ha senso all’interno del router che instrada il traffico verso l’organizzazione intestataria delle sottoreti, in quanto permette di ridurre la dimensione delle tabelle di routing, che contengono così un solo elemento relativo alla super-rete, anzichè un elemento per ogni singola sottorete.
Classless Interdomain Routing↓ - cidr
Nella prima metà degli anni ’90 apparve evidente che il partizionamento degli indirizzi nelle tre classi A, B e C non era rispondente alle richieste dell’utenza; accadeva infatti che le reti in classe C erano troppo “piccole”, mentre quelle in classe B rischiavano di esaurisi a breve, pur essendo sfruttate molto poco [355] [355]Ad esempio, organizzazioni con poco più di un migliaio di nodi erano costrette a richiedere una intera classe B con capacità di 65536 nodi.. Per questo motivo, è stata rimossa la suddivisione rigida nelle tre classi, e si è sistematicamente applicato il principio del supernetting. In pratica, si è ridefinita la maschera di sottorete, come una sequenza di uni allineata a sinistra, permettendo così di definire reti di dimensione pari a una potenza di due qualsiasi. Come risultato, ora una sottorete è identificata da una coppia indirizzo/maschera del tipo (ad es.) 172.192.0.0  ⁄ 12, che rappresenta tutti 220 indirizzi che vanno da 172.192.0.0 a 172.207.255.255, che hanno i 12 bit più elevati uguali a 101011001100: questa sequenza prende il nome di prefisso della rete. In definitiva quindi, la maschera è espressa come il numero di bit più significativi in comune a tutti i nodi della sottorete.
Longest Match
Un router decide su che porta instradare un pacchetto IP in base al confronto tra l’indirizzo di destinazione e tutti i prefissi presenti nella tabella di routing, associati ciascuno alla “migliore” porta di uscita verso la sottorete definita dal prefisso. Nel caso in cui si verifichi più di una uguaglianza, si sceglie l’instradamento caratterizzato dal maggior numero di bit coincidenti, ossia relativo al prefisso più lungo. Infatti, in tal modo viene preferita la direzione più specifica verso la destinazione finale. In assenza di uguaglianze invece, il pacchetto è inoltrato in base ad una default route, che tipicamente rimanda la decisione ad un router “gerarchicamente più elevato” [356] [356]Sebbene la topologia di Internet possa essere qualunque, nella pratica esistono dei carrier internazionali che svolgono la funzione di backbone (spina dorsale) della rete, interconnettendo tra loro i continenti e le nazioni..
Sistemi Autonomi↓ e Border Gateway
Vi sono router collegati direttamente con le LAN, e configurati per instradare correttamente i pacchetti diretti a destinazioni locali. Vi sono poi router collegati solo ad altri router, che apprendono gli instradamenti verso le reti locali mediante appositi protocolli di routing che consentono ai router di primo tipo di pubblicizzare (advertise) le reti raggiungibili direttamente, ed ai router del secondo tipo di fare altrettanto nei confronti dei loro pari.
L’insieme di sottoreti (e router, nodi e dns) gestite da una stessa organizzazione prende il nome di Autonomous System (as), e nel suo ambito sono attivi protocolli di routing detti Interior Gateway Protocols (igp), che distribuiscono le informazioni di raggiungibilità interna. Alcuni router di uno stesso as svolgono il roulo di Border Gateway (bg), e comunicano con i bg di altri as mediante appositi Exterior Gateway Protocols (egp), pubblicizzando all’esterno le proprie sottoreti, apprendendo dagli altri bg la raggiungibilità delle sottoreti esterne, e distribuendo tali informazioni ai router interni. Un compito particolare dell’egp, è quello di attuare qualche politica nei confronti del traffico di transito tra due as diversi dall’as di cui il bg fa parte: in tal caso, il protocolo prende il nome di Border Gateway Protocol (bgp).
L’applicazione del cdir comporta, per ogni scambio di informazioni di routing, la necessità di aggregare o disaggregare i prefissi di sottorete, in modo da mantenere al minimo la dimensione delle tabelle di instradamento.
Multicast↓
Tornando all’esame della tabella di pag. 1↑, in cui la classe E costituisce evidentemente una “riserva” di indirizzi per poter effettuare sperimentazioni, la classe D individua invece dei canali multicast [357] [357]Il termine multicast è ispirato alle trasmissioni broadcast effettuate dalle emittenti radio televisive.. Quando un nodo decide di aderire ad un canale multicast, invia un messaggio [358] [358]Mediante il protocollo IGMP (Internet Group Management Protocol) che opera sopra lo strato IP, ma (a differenza del TCP) fa uso di datagrammi non riscontrati, similmente all’UDP ed all’ICMP. in tal senso al proprio router più vicino, che a sua volta si occupa di informare gli altri router. Questi ultimi provvederanno quindi, qualora osservino transitare un pacchetto avente come destinazione un canale multicast, ad instradarlo verso l’host aderente. In presenza di più nodi nella stessa sottorete in ascolto dello stesso canale, solo una copia dei pacchetti attraverserà il router: il traffico multicast [359] [359]Data l’impossibilità a stabilire un controllo di flusso con tutti i destinatari, il traffico multicast viaggia all’interno di pacchetti UDP. evita infatti di aprire una connessione dedicata per ogni destinatario, ma si suddivide via via nella rete solo quando i destinatari sono raggiungibili da vie diverse.

#### 8.6.1.6Ethernet↓

Ci occupiamo qui di un caso particolare di realizzazione dei primi due livelli del modello ISO-OSI. Come anticipato a pag. 1↑, molti nodi di Internet sono univocamente individuati da un indirizzo (Ethernet) di 6 byte che, sebbene sia unico al mondo, viene usato solamente nell’ambito della LAN a cui il nodo è connesso, in quanto la distribuzione mondiale degli indirizzi Ethernet è casuale [360] [360]E rappresenta quindi ciò che viene detto uno spazio di indirizzi piatto (flat address space).: se infatti questi fossero usati come indirizzi a livello di rete, le tabelle di instradamento dovrebbero essere a conoscenza di tutti i nodi esistenti [361] [361]Al contrario, il partizionamento dell’indirizzo IP in rete+nodo permette di utilizzare tabelle di routing di dimensioni gestibili.. Puntualizziamo inoltre che un nodo di Internet può essere connesso alla rete anche per via telefonica, o con svariati altri metodi; ci limitiamo qui a descrivere il caso delle LAN Ethernet, peraltro particolarmente diffuso.
Ethernet individua un particolare tipo di pacchetto dati, adottato inizialmente dalla Xerox, adatto ad incapsulare dati provenienti da protocolli diversi. Successivamente, il formato è stato standardizzato dall’IEEE, e per ciò che ci interessa le specifiche sono quelle identificate dalle sigle 802.2 (Logical Link Control, LCC) e 802.3 (Carrier Sense Multiple Access - Collision Detect, CSMA/CD).
La figura mostra il legame tra queste due sigle e gli strati del modello; lo strato MAC in cui si realizza il csma/cd individua il Media Access Control. Il mezzo trasmissivo è un cavo, coassiale o coppia simmetrica, sul quale sono collegati tutti nodi della LAN, che si contendono il mezzo trasmissivo, in quanto vi può trasmettere solo un nodo per volta. Inoltre, tutti i nodi sono in ascolto sullo stesso mezzo per ricevere i pacchetti a loro destinati, riconoscibili per la presenza del proprio indirizzo Ethernet nel campo destinazione. Un pacchetto Ethernet può inoltre riportare un indirizzo di destinazione particolare, detto di Broadcast↓, che obbliga tutti i nodi presenti alla ricezione del pacchetto.
Address Resolution Protocol - arp↓
Quando un pacchetto IP giunge ad un router, e l’indirizzo IP indica che il destinatario è connesso ad una delle LAN direttamente raggiungibili dal router [362] [362]Ad ogni porta del router è associata una coppia sottorete/maschera (vedi pag. 1↑) che descrive l’insieme degli indirizzi direttamente connessi alla porta. La verifica di raggiungibilità (o adiacenza) è attuata mettendo in and l’ip di destinazione con le maschere, e confrontando il risultato con quello dell’and tra le maschere e gli indirizzi delle sottoreti collegate., questo invia su quella LAN un pacchetto broadcast, su cui viaggia una richiesta ARP (address resolution protocol), allo scopo di individuare l’indirizzo Ethernet del nodo a cui è assegnato l’indirizzo IP di destinazione del pacchetto arrivato al router. Se tale nodo è presente ed operativo, riconosce che la richiesta è diretta a lui, ed invia un pacchetto di risposta comunicando il proprio indirizzo Ethernet, che viene memorizzato dal router in una apposita tabella [363] [363]
Dato che i nodi possono essere spostati, possono cambiare scheda di rete e possono cambiare indirizzo IP assegnatogli, la corrispondenza IP-Ethernet è tutt’altro che duratura, ed ogni riga della tabella ARP indica anche quando si sia appresa la corrispondenza, in modo da poter stabilire una scadenza, ed effettuare nuovamente la richiesta per verificare se sono intervenuti cambiamenti topologici.
Se il nodo ha cambiato IP, ma non il nome, sarà il TTL del DNS (mantenuto aggiornato per il dominio del nodo) a provocare il rinnovo della richiesta dell’indirizzo.
.
Operazioni simili sono svolte da ognuno dei nodi della LAN, ogni volta che debbano inviare un pacchetto ad un altro nodo direttamente connesso alla stessa rete locale. Se al contrario l’IP di destinazione non fa parte della stessa LAN, il pacchetto è inviato al default gateway.
Formato di pacchetto
Il pacchetto Ethernet è generato dall’LLC e dal MAC, ognuno dei quali incapsula il pacchetto IP con le proprie informazioni di protocollo.
Nella figura seguente è mostrato il risultato finale delle operazioni. In testa troviamo 7 byte di preambolo, necessario a permettere la sincronizzazione dell’orologio del ricevente con quello in trasmissione; dato che la sincronizzazione richiede un tempo non noto a priori, un byte di flag segnala l’inizio del pacchetto. Troviamo quindi gli indirizzi Ethernet di sorgente e destinazione, due byte che indicano la lunghezza della restante parte del pacchetto, e quindi l’incapsulamento dei dati prodotti dall’LLC. In fondo, sono presenti 4 byte che realizzano il controllo di errore.
L’LLC inserisce invece, in testa al pacchetto IP, due indirizzi SAP (service access point) di sorgente e destinazione, da utilizzare per indicare il codice che identifica il tipo di rete e/o protocollo del pacchetto incapsulato (ad es., IP od ARP). Nel campo di controllo possono essere anche ospitati numeri di sequenza, per i casi che lo possano richiedere, ed infine troviamo il pacchetto IP originario.
D’altra parte, per ovviare al numero limitato di possibili incapsulamenti esprimibili utilizzando solo gli 8 bit dei campi sap, è stata introdotta una estensione all’llc denominata snap (Subnetwork Access Protocol) [364] [364]http://en.wikipedia.org/wiki/Subnetwork_Access_Protocol che pone i campi dsap, ssap e controllo pari a `0xAAAA03`, a cui aggiunge altri 5 bytes, dei quali i primi tre sono denominati oui (Organizationally Unique Identifier) che, se posti tutti a zero, stabiliscono che i due byte seguenti (indicati come protocol ID) debbano essere interpretati come un codice Ethertype [365] [365]http://en.wikipedia.org/wiki/EtherType, lo stesso usato nel formato Ethernet II discusso appresso, permettendo quindi di specificare finalmente il protocollo incapsulato.
Infine, viene molto frequentemente usato un formato di trama ancora diverso, detto Ethernet II o dix [366] [366]Vedi http://en.wikipedia.org/wiki/Ethernet_II_framing. La sigla dix deriva dalle iniziali delle aziende che l’hanno definito, ossia DEC, Intel and Xerox, che corrisponde a quello definito inizialmente prima che l’ieee emettesse gli standard della serie 802, e che usa i 16 bit del campo lunghezza per indicare direttamente l’Ethertype della sdu incapsulata, ed omette i campi dsap, ssap e di controllo. In tal caso, il campo lunghezza rappresenta un numero più grande di `0x0600`, maggiore della massima lunghezza prevista, e ciò fa si che venga interpretato come codice Ethertype, e che se sono incapsulati pacchetti ip, vale `0x0800`. La figura seguente, tratta dal documento dell’ieee, illustra la corrispondenza tra i campi del formato snap e dix.
Collisione↓
Come anticipato, il mezzo trasmissivo è in comune con tutti i nodi, e dunque si è studiata una particolare soluzione il cui nome CSMA/CD indica che l’Accesso Multiplo avviene in due fasi: prima di trasmettere, si ascolta se non vi sia già qualcuno che trasmette (Carrier Sense), e durante la trasmissione, si verifica che nessun altro stia trasmettendo contemporaneamente (Collision Detect). Pertanto, ogni nodo che debba trasmettere si pone prima in ascolto, e se osserva che già vi sono trasmissioni in corso, attende un tempo casuale e riprova. Quando trova il mezzo “libero”, inizia a trasmettere, ma contemporaneamente verifica che nessun altro inizi a sua volta la trasmissione: questo fatto può accadere, in virtù del tempo di propagazione [367] [367]Su di un cavo coassiale tick da 50 Ω, la velocità di propagazione risulta di 231⋅106 metri/secondo. Su di una lunghezza di 500 metri, occorrono 2.16 μsec perchè un segnale si propaghi da un estremo all’altro. Dato che è permesso di congiungere fino a 5 segmenti di rete per mezzo di ripetitori, e che anch’essi introducono un ritardo, si è stabilito che la minima lunghezza di un pacchetto Ethernet debba essere di 64 byte, che alla velocità di trasmissione di 10 Mbit/sec corrisponde ad una durata di 54.4 μsec, garantendo così che se si è verificata una collisione, le due parti in causa possano accorgersene. non nullo, e determina un periodo (detto di contesa, e che dipende dalla massima lunghezza del cavo) entro il quale un nodo può erroneamente credere che nessun altro stia trasmettendo.
Qualora sia rilevata una contesa, i due nodi smettono di trasmettere, e riprovano solo dopo una attesa di durata casuale.
Trasmissione
Il segnale relativo al pacchetto Ethernet viene trasmesso adottando una codifica di linea di tipo Manchester differenziale. La configurazione con tutti i nodi collegati su di uno stesso cavo è detta a bus, e sono state coniate apposite sigle per identificare il tipo di connessione, come ad esempio 10Base5 e 10Base2, relative al collegamento di banda base a 10 Mbps, su cavo tick e thin [368] [368]Tick = duro (grosso), thin = sottile. Ci si riferisce al diametro del cavo., con estensione massima 500 e 200 metri [369] [369]Le sigle indicano infatti la velocità, se in banda base o meno, e la lunghezza della tratta. .

#### 8.6.1.7Fast e Gigabit Ethernet

Mentre si proponeva atm come una soluzione idonea per quasi tutti gli ambiti, la tecnologia Ethernet ha incrementato la velocità trasmissiva di un fattore pari a mille, e si propone sempre più come soluzione generalizzata.
Fast Ethernet
Nel 1995 è stato definito lo standard ieee 802.3u detto Fast Ethernet, che eleva la velocità di trasmissione a 100 Mbps ed impiega due diversi cavi utp [370] [370]Unshielded Twisted Pair (UTP), ossia la coppia ritorta non schermata. per le due direzioni di trasmissione, rendendo eventualmente la comunicazione full-duplex [371] [371]La trasmissione full-duplex si instaura quando entrambe le interfacce agli estremi ne sono capaci. Una interfaccia half-duplex deve invece gestire situazioni interne di collisione, quando un pacchetto uscente da un nodo si scontra con uno entrante.. In quest’ambito sono definiti i sistemi 10BaseT e 100BaseT, relativi all’uso del cavo utp anzichè di un coassiale, e prevedono una topologia a stella per la LAN, realizzata utilizzando una unità centrale (detta hub=mozzo di ruota) da cui si dipartono tanti cavi, ognuno che collega un unico nodo. Nel caso di un hub economico, questo svolge solo le funzioni di ripetitore (ritrasmette tutto su tutte le sue porte) e dunque le collisioni possono ancora verificasi.
LAN Switch↓
D’altra parte, i dispositivi detti brigde o lan switch apprendono dai pacchetti in transito gli indirizzi ethernet dei nodi collegati alle porte, ed evitano di ritrasmettere i pacchetti sulle porte dove non si trova il destinatario. Dato che gran parte del traffico è inviato verso il gateway della LAN, lo switch apprende in fretta su che porta questo si trovi, cosicchè tutti i pacchetti destinati all’esterno non sono ritrasmessi sugli altri rami della LAN, ed il traffico tra i nodi connessi allo switch non si propaga al resto della LAN.
La lunghezza massima dei collegamenti è ora ridotta a 100 metri, per il motivo che un pacchetto di dimensione minima di 64 byte trasmesso a 100 Mbps, impiega un tempo che è (1)/(10) di quello relativo alla velocità di 10 Mbps, e quindi per consentire la detezione di collisione, si è dovuta ridurre di pari misura la massima distanza tra nodi trasmittenti.
Dominio di broadcast↓ e VLAN↓
Anche se i dispositivi bridge e switch evitano di trasmettere traffico verso le porte diverse da quella di destinazione, alcuni pacchetti devono comunque essere ritrasmessi in tutte le direzioni: si tratta del traffico broadcast, diretto verso un ben preciso insieme di indirizzi ethernet, ed usato per funzioni di coordinamento tra i nodi della lan, come ad esempio l’esplora risorse di rete. I traffico broadcast non esce dalla LAN, arrestandosi al router di livello IP; una eccessiva presenza di traffico broadcast può però pregiudicare l’efficenza sia della LAN che dei suoi nodi, oltre che produrre problemi di sicurezza; per questo si è sviluppata la possibilità di assegnare le porte di uno switch a diversi domini di broadcast, detti lan vituali (vlan), che non scambiano traffico, realizzando di fatto molteplici lan con uno stesso cablaggio. Per interconnettere le lan, occorre attraversare un dispositivo router.
Gigabit Ethernet↓
Nel giugno 1998 viene standardizzato l’ieee 802.3z, che porta ad 1 Gbps la velocità di trasmissione delle trame Ethernet, rimpiazzando lo strato di codifica di linea dell’802.3 con i due strati inferiori dell’ansi x3t11 Fiber Channel. In questo modo, si mantiene la compatibilità con gli strati llc e mac di Ethernet, mentre la trasmissione avviene su fibra ottica o su cavo in accordo alla tabella seguente.

media | distanza | mezzo | sorgente
1000base-sx | 300 m | f.o. multimodo φ 62.5 μm | laser 850 nm
| 550 m | f.o. multimodo φ 50 μm | laser 850 nm
1000base-lx | 550 m | f.o. multimodo φ 50 o 62.5 μm | laser 1300 nm
| 3000 m | f.o. monomodo φ 9 μm | laser 1300 nm
1000base-cx | 25 m | cavo stp (shielded twisted pair) |
1000base-t | 25-100 m | 4 coppie di cavo utp |

Packet bursting
Dato che ora la velocità di trasmissione è 10 volte quella del fast Ethernet, la compatibilità con il mac csma/cd richiederebbe di ridurre la massima lunghezza del collegamento a 10 metri. Al contrario, è stata aumentata la durata minima di una trama portandola a 512 byte, in modo da aumentare la durata della trasmissione e garantire la detezione di collisione. In effetti, il mac ethernet continua a produrre pacchetti di durata minima 64 byte, e questi sono riempiti (padded) fino a 512 byte con una carrier extension di simboli speciali. Questa operazione è particolarmente inefficiente se i pacchetti da 64 byte sono frequenti; in tal caso si attua allora il packet bursting che, esauriti i 512 byte minimi realizzati come indicato, accoda gli ulteriori pacchetti nello stesso burst trasmissivo, fino ad una lunghezza di 1500 byte.
Architettura
La figura seguente mostra la pila protocollare per Gigabit Ethernet. La gmii permette di usare lo strato mac con qualunque strato fisico,
ed opera sia in full-duplex che in half-duplex, alle velocità di 10, 100 e 1000 Mbps, mediante due percorsi dati (Tx e Rx) da 8 bit, più due segnali di strato per indicare presenza di portante e detezione di collisione, che sono mappati dal rs nelle primitive riconosciute dallo strato mac preesistente.
Lo strato fisico è suddiviso in tre sottolivelli. Il pcs fornisce una interfaccia uniforme al rs per tutti i media. Provvede alla conversione 8b/10b tipica del Fiber Channel, che rappresenta gruppi di 8 bit mediante code group da 10 bit, alcuni dei quali rappresentano i simboli, ed altri sono codici di controllo, come quelli usati per la carrier extension. Il pcs genera inoltre le indicazioni sulla portante e sulla collisione, e gestisce la auto-negoziazione sulla velocità di trasmissione e sulla bidirezionalità del media.
Il pma provvede alla conversione parallelo-serie e viceversa, mentre il pmd definisce l’mdi, ossia la segnalazione di strato fisico necessaria ai diversi media, così come il tipo di connettore.
Ripetitore full-duplex e controllo di flusso
Qualora tutte le porte di un ripetitore siano di tipo full-duplex, non può più verificarsi contesa di accesso al mezzo, e la contesa avviene all’interno del ripetitore, che (non essendo un switch) copia tutte le trame in ingresso (debitamente bufferizzate in apposite code) in tutte le code associate alle porte di uscita. Pertanto, la lunghezza massima dei collegamenti non è più dettata dalla necessità di rilevare collisioni, ma dalle caratteristiche del mezzo trasmissivo. D’altra parte, possono verificarsi situazioni di flooding delle code di ingresso; il comitato ieee 802.3x ha quindi definito un meccanismo di controllo di flusso, che mette in grado i ripetitori (e gli switch) di richiedere ai nodi connessi la sospensione temporanea della trasmissione.
10 Gigabit Ethernet
Nel 2002 viene definito lo standard ieee 802.3ae, che stabilisce le modalità operative di un collegamento Ethernet operante solo in full duplex su fibra ottica. Lo standard prevede di interoperare con la trasmissione sonet/sdh.

### 8.6.2Rete ATM↓

La sigla ATM sta per Asynchronous Transfer Mode, ed identifica una particolare rete progettata per trasportare indifferentemente traffico di diversa natura, sia di tipo dati che real-time [372] [372]Per traffico real-time si intende sia quello telefonico, sia più in generale quello di natura multimediale., che per questo motivo è indicata anche come b-isdn [373] [373]Siamo alla fine degli anni ’80, e la definizione Integrated Service Data Network (isdn) si riferisce ad una rete in grado di permettere, oltre al normale trasporto dei dati, anche servizi di rete. La rete isdn era però limitata ad una velocità massima (presso l’utente) di 2 Mbps, e per questo venne chiamata narrow-band isdn (n-isdn). A questa, avrebbe fatto seguito la broad-band isdn (b-isdn) che ha poi dato luogo alla definizione dell’atm.. Il suo funzionamento si basa sul principio della commutazione di cella (cell switching), dove per cella si intende un pacchetto di lunghezza fissa di 53 byte. I primi 5 byte delle celle contengono un identificativo di connessione, ed il loro instradamento avviene mediante dei circuiti virtuali. La commutazione delle celle tra i nodi di rete ha luogo in maniera particolarmente efficiente, e questa è una delle caratteristiche più rilevanti dell’ATM.
Architettura
La rete ATM viene indicata anche come una Overlay Network, in quanto operativamente si sovrappone ai livelli inferiori di una rete esterna.
Dal canto suo, ATM è strutturata sui tre strati funzionali di adattamento (AAL), di commutazione atm, e fisico. Mentre i nodi ai bordi della rete devono realizzare tutti e tre gli strati, i nodi interni svolgono solo le funzioni attuate da quelli inferiori. La tabella 8.1↓ riporta le principali funzioni svolte dai tre strati, e pone in evidenza come in uno stesso strato siano identificabili diverse sotto-funzioni.

strato | sotto-strato | funzioni
ATM Adaptation | • Convergenza (CS) | Definisce il servizio offerto agli strati superiori
Layer (AAL) | • Segmentazione e Riassemblaggio (SAR) | Suddivide i dati in modo compatibile con la dimensione di cella, e li ricostruisce in ricezione
ATM layer |  | Multiplazione e demultiplazione delle celle Traslazione delle etichette VPI/VCI Generazione/estrazione dell’HEADER della cella Gestione del controllo di flusso GFC
Physical Layer (PL) | • Convergenza di trasmissione (TC) | Delimitazione delle celle Inserimento celle IDLE per adattamento velocità Generazione e verifica dell’HEC (controllo di errore) Generazione della trama di trasmissione
| • Mezzo Fisico (PM) | Temporizzazione e sincronizzazione Gestione del mezzo

Table 8.1Stratificazione delle funzioni in una rete ATM
Strato fisico
Il mezzo primario di trasmissione (con cui è in contatto il sotto-strato pm) per ATM è la fibra ottica, in accordo alla struttura di trama dell’sdh/sonet, per la quale sono state standardizzate le velocità di 1.5 e 2 Mbps (ds1/e1), 155 Mbps (oc3) e 622 Mbps (oc12c). La velocità di 155 Mbps è disponibile anche su Fibre Channel, e su cavo ritorto, mentre la velocità di 100 Mbps è disponibile su fddi. Infine, sono previste anche velocità di interconnessione di 139, 52, 45, 34 e 25 Mbps.

1 4 | 5 7 | 8
GFC/VPI | VPI
VPI | VCI
VCI
VCI | PT | CLP
HEC
....
48 byte di payload

Formato della cella ATM
In funzione del mezzo trasmissivo, può variare la struttura di trama [374] [374]Sono definite due tipi di interfaccia utente-network (uni): quella sdh/sonet, in cui le celle sono inserite nel payload della trama sdh, e quella cell-based, che prevede un flusso continuo di celle. Mentre nel primo caso il bit rate lordo comprende l’overhead di trama, nel secondo comprende la presenza di celle di tipo Operation and Maintenance (oam). (mostrata in figura) in cui vanno inserite le celle. Il quinto byte della intestazione di cella, contiene l’Header Error Code (hec) calcolato sui 4 byte precedenti, che viene usato in ricezione per rivelare due errori e correggerne uno [375] [375]Nel primo caso la cella viene scartata, mentre nel secondo inoltrata correttamente. La presenza di più di due errori, provoca un errato inoltro della cella.. Nel caso in cui la sorgente produca dati a velocità inferiore a quella del collegamento, sono inserite celle aggiuntive di tipo idle, rimosse al ricevitore [376] [376]Le celle idle sono riconoscibili in base ad una particolare configurazione dei primi 4 byte dell’header, così come avviene per le celle oam, nonchè per altri tipi particolari di cella, che trasportano la segnalazione degli strati superiori.. Infine, la delimitazione delle celle è attuata in ricezione in base alla correlazione tra i primi quattro byte dell’header, ed il campo hec dello stesso.
Strato ATM
Mentre lo strato fisico si occupa di trasmettere e ricevere celle, lo strato ATM si occupa di elaborarle. Nei nodi di frontiera, le celle sono multiplate e demultiplate, mentre dentro la rete, sono commutate tra gli ingressi e le uscite.
Nei primi quattro byte dell’header di cella trova posto l’etichetta necessaria a realizzare il trasferimento a circuito virtuale; questa etichetta è suddivisa in due campi, il Virtual Path Identifier (vpi) ed il Virtual Channel Identifier (vci) [377] [377]Mentre per vci sono riservati 16 bit, per vpi si usano 12 bit all’interno della rete, e 8 bit ai suoi bordi, riservando 4 bit indicati come Generic Flow Control (gfc) per regolare il flusso delle sorgenti..
Il motivo della suddivisione risiede nella possibilità di raggruppare logicamente diversi circuiti virtuali che condividono lo stesso percorso nella rete. Nei collegamenti di cui è composto il percorso comune, viene usato uno stesso vpi per tutte le celle, mentre le diverse connessioni su quel percorso sono identificate mediante diversi vci. L’instradamento congiunto delle celle con uguale vpi è effettuato nei nodi (vp switch), che si occupano solo [378] [378]Questa semplificazione del lavoro di instradamento, quando confrontata con quello relativo ad una rete ip, è all’origine della vocazione fast switching della rete ATM. Per di più, permette la realizzazione harwdare dei circuiti di commutazione. D’altra parte, mentre per ip l’instradamento avviene al momento della trasmissione, in atm avviene durante il set-up della connessione, quando le tabelle di instradamento sono inizializzate. di scambiare il vpi delle celle, e di porle sulla porta di uscita corretta, come indicato dalle tabelle di instradamento.
La sequenza dei nodi attraversati dall’instra-damento è indicata come Virtual Path Connection (vpc), è composta a da zero o più vp switch, ed è delimitata tra due nodi (vc o vp/vc switch [379] [379]Nel caso in cui venga invece scambiato solo il vci, si ottiene uno switch vc puro.) che elaborano anche i vci. La sequenza dei vc switch che elaborano i vci, e che si estende tra due nodi che terminano lo strato di adattamento, è indicata invece con il termine Virtual Channel Connection (vcc) [380] [380]La rete ATM assicura la consegna delle celle di una stessa vcc nello stesso ordine con cui sono state trasmesse, mentre non assicura l’ordinamento per le celle di una stessa vpc. e comprende uno o più vpc, coincidendo spesso [381] [381]Può accadere infatti di incontrare uno switch vc puro, in cui è scambiato solo il vci, ed al quale fanno capo due diverse vcc. con il percorso tra ingresso ed uscita [382] [382]I nodi di ingresso ed uscita sono indicati come ingress ed egress nella terminologia ATM. della rete ATM.
La creazione delle tabelle di instradamento può essere di tipo manuale, dando luogo ad una Permanent Virtual Connection (pvc), oppure può essere il risultato di una richiesta estemporanea, dando luogo ad una Switched Virtual Connection (svc) [383] [383]Nella richiesta di una svc, l’utente invia i messaggi di setup su di una particolare (well known) coppia vpi/vci=0/5. In generale, le prime 32 vci di ogni vpi sono riservate per propositi di controllo. In queste, sono contenuti dei messaggi di segnalazione che aderiscono alle specifiche Q.2931, che fanno parte di User Network Interface (uni) 3.1, e che sono un adattamento di Q.931 per n-isdn. Le specifiche uni 4.0 prevedono la negoziazione della QoS, e la capacità di richiedere una svc per una vpc.; l’oggetto della richiesta può essere una vcc od una vpc, ed in questo secondo caso la vpc verrà usata per tutte le vcc future tra i due nodi.
Classi di traffico e Qualità del Servizio (QoS)
Nella fase di setup, sono attuate delle verifiche dette Connession Admission Control (cac) per assicurarsi che la nuova connessione non degradi le prestazioni di quelle già in corso, nel qual caso la chiamata è rifiutata. La sua accettazione determina invece la stipula tra utente e rete di un Traffic Contract a cui la sorgente si deve attenere. Nel corso della trasmissione, i nodi ATM verificano che le caratteristiche del traffico in transito nelle vcc siano conformi al rispettivo contratto, svolgendo un Usage Parameter Control (upc) detto anche policing [384] [384]Letteralmente: poliziottamento. Il controllo può anche essere effettuato su di una intera vpc.. Prima di proseguire, forniamo però alcune definizioni.
Come anticipato, ATM si è sviluppata per trasportare diversi tipi di traffico, classificabili come segue, nei termini dei parametri indicati di seguito:

- Constant Bit Rate (cbr) identifica il traffico real-time come la voce [385] [385]La classe cbr si presta bene a trasportare traffico telefonico pcm. In questo caso, può trasportare solo gli intervalli temporali realmente occupati. ed il video non codificato;
- Variable Bit Rate (vbr) può essere di tipo real time (es. video mpeg) oppure no, ed allora può tollerare variazioni di ritardo (cdv) ma non l’eccessiva perdita di dati (clr);
- Available Bit Rate (abr) tenta di sfruttare al meglio la banda disponibile. Il contratto prevede la fornitura di un mcr da parte della rete, e le sorgenti sono in grado di rispondere ad una indicazione di congestione, riducendo di conseguenza l’attività;
- Unspecified Bit Rate (ubr) condivide la banda rimanente con abr, ma non gli è riconoscito un mbr, né è previsto nessun controllo di congestione. Le celle in eccesso sono scartate. Idonea per trasmissioni insensibili a ritardi elevati, e che dispongono di meccanismi di controllo di flusso indipendenti [386] [386]La classe ubr è particolarmente adatta al trasporto di traffico ip, in quanto questo è un protocollo senza connessione, e gli strati superiori (ad es. il tcp) sono in grado di gestire correttamente un servizio di collegamento con perdita di dati..

Le classi di traffico sono descrivibili mediante i parametri

- Peak Cell Rate (pcr) applicabile a tutte le classi, ma è l’unico parametro per cbr;
- Sustainable Cell Rate (scr) assieme ai tre seguenti, descrive le caratteristiche di vbr: velocità comprese tra scr e pcr sono non-conformi, se di durata maggiore di mbs;
- Minimum Cell Rate (mcr) caratterizza la garanzia di banda offerta alla classe abr;
- Maximum Burst Size (mbs) descrive la durata dei picchi di traffico per sorgenti vbr.

Il contratto di traffico, mentre impegna la sorgente a rispettare i parametri di traffico dichiarati, vincola la rete alla realizzazione di una Quality of Service (QoS), rappresentata dalle grandezze (tra le altre)

- Cell Tansfer Delay (ctd) assieme alla seguente, è molto importante per la classe cbr;
- Cell Delay Variation (cdv) rappresenta la variabilità nella consegna delle celle, dannosa per le applicazioni real-time. La presenza di una cdv elevata può inoltre provocare fenomeni di momentanea congestione all’interno della rete, e può essere ridotta adottando degli shaper [387] [387]Un sagomatore è composto in prima approssimazione da un buffer di memoria, il cui ritmo di svuotamento non è mai superiore ad un valore costante., che riducono la variabilità di ritardo a spese un aumento di ctd;
- Cell Loss Ratio (clr) rappresenta il tasso di scarto di celle del collegamento.

Nel caso in cui il policing rilevi che una connessione viola le condizioni contrattuali [388] [388]Ad esempio, una cbr supera il proprio pcr, od una vbr oltrepassa il pcr per più tempo di mbs, oppure il traffico generato da una ubr non può essere instradato per l’esaurimento della banda., può intraprendere svariate azioni, e se può, non scarta immediatamente la cella, ma provvede comunque a segnalare l’anomalia, ponendo pari ad uno il bit Cell Loss Priority (clp) dell’header. Ciò fa si che la cella divenga scartabile [389] [389]Alcune classi di traffico pongono clp=1 già in partenza, sia per una capacità indipendente di risolvere situazioni di perdita di dati, sia per la diversa natura dei dati che possono inviare, come ad esempio una codifica di segnale in cui alcuni dati posso essere interpolati, mentre altri no. Al contrario, alcune sorgenti confidano molto nel rispetto del proprio clp=0, come ad esempio nel caso in cui queste inviino pacchetti di dati ben più grandi delle celle atm, e che sono di conseguenza frammentati in molte unità, ed in presenza di una sola cella mancante, devono ritrasmettere l’intero pacchetto. In quest’ultimo caso, sono state elaborate strategie di scarto precoce (early discard) di tutte le celle di un pacchetto, per il quale si è già verificato lo scarto di una cella componente. in caso di congestione in altri nodi. Un ulteriore campo dell’header, il Paylad Type (pt), può infine ospitare una segnalazione in avanti, che manifesta il fatto che la cella in questione ha subito congestione.
Indirizzamento
I nodi di una rete atm sono identificati da un indirizzo di 20 byte, di diverso significato nei casi di reti private o pubbliche, come indicato dal primo byte

Rete Privata
AFI | ICD/DCC | HO-DSP | ESI | SEL
Rete Pubblica
AFI | E.164 | HO-DSP | ESI | SEL

(afi). Nel primo caso, detto formato nsap [390] [390]Il formato nsap si ipira al Network Service Access Point dell’OSI, e se ne differenzia per aver fuso i campi Routing Domain e Area in un solo campo ho-dsp, per il quale si è adottata una gerarchia di instradamento basata su di un prefisso mobile, in modo simile al cdir dell’ip., il dcc o l’icd sono assegnati dall’ISO, e l’indirizzo del nodo è disposto nei 10 byte indicati come High-Order Domain Specific Part (ho-dsp). I sei byte dell’End System Identifier (esi) sono forniti dal dispositivo connesso ai bordi della rete, e coincidono con il suo indirizzo Ethernet: in tal modo la rete comunica un prefisso che identifica il nodo di ingresso, ed il dispositivo lo associa al proprio esi per forgiare il proprio indirizzo completo. Infine, il byte sel può essere usato per multiplare più entità presso il terminale, ed è ignorato dalla rete.
Nel caso di rete pubblica, il campo ho-dsp è ristretto a 4 byte, e gli 8 byte di e.164 contengono un indirizzo appartenente alla numerazione telefonica mondiale.
Strato di adattamento
Come mostrato in tab. 8.1↑, l’aal è suddiviso in due componenti, Segmenting and Reassembly (sar) e Convergence Sublayer (cs); le funzioni di quest’ultimo sono ulteriormente ripartite tra una Common Part (cpcs) ed un Service Specific cs (sscs).
Il compito di aal è quello di generare i 48 byte del payload per le celle atm, a partire dalle sdu ricevute, e di ricomporre queste ultime in ricezione, a partire dal risultato della loro demultiplazione operata (in base alle etichette vpi/vci) dallo strato atm ricevente. Mentre il sar si interfaccia con lo strato atm, il cs interagisce con i protocolli superiori, e le esatte operazioni svolte dipendono dalla natura del traffico trasportato: la fig. 8.37↓ mostra quattro diverse situazioni.
La classe A è un classico caso cbr, ed in tal caso si adotta un aal di tipo 1, in cui lo strato cs è assente, ed il sar utilizza il primo dei 48 byte di cella per inserire informazioni di controllo sull’ordine di consegna, e di ausilio al recupero della temporizzazione di sorgente presso la destinazione.

A | B | C | D
servizio isocrono | ritardo variabile consentito
bit rate costante | bit rate variabile
con connessione | senza connessione
AAL 1 | AAL 2 | AAL 3/4 o 5 | AAL 3/4 o 5

Figura 8.37 Classi di servizio della rete ATM
La classe B (aal 2) individua sorgenti multimediali a pacchetto, mentre per la C (aal 3/4 o 5) siamo più tipicamente in presenza di una connessione dati a circuito virtuale. In questa categoria rientra il trasporto di collegamenti X.25 e frame relay, sia di tipo abr che ubr. Lo stesso tipo di aal (3/4 o 5) è infine usato anche per la classe D, in cui rientra pienamente il trasporto di traffico ip su atm.
Quando il cs di aal 3/4 riceve una sdu (di dimensione massima 216− 1) dagli strati superiori, la allinea ad un multiplo di 32 byte, e vi aggiunge 32 byte in testa ed in coda con informazioni di lunghezza e di controllo di integrità. La cs-pdu risultante è passata al sar, che la suddivide in blocchi di 44 byte, a cui ne aggiunge 2 in testa e due in coda [391] [391]Questi ultimi 4 byte contengono l’indicazione (2 bit) se si tratti della prima, ultima od intermedia cella di una stessa cs-pdu, la lunghezza dei dati validi se è l’ultima (6 bit), un numero di sequenza (4 bit), un controllo di errore (10 bit), ed una etichetta (10 bit) che rende possibile interallacciare temporalmente le celle di diverse cs-pdu., e completa così la serie di 48 byte da passare allo strato atm. Al contrario, il sar dell’aal 5 suddivide la cs-pdu in blocchi da 48 byte e non aggiunge informazioni [392] [392]In questo modo si risparmiano 4 byte ogni 48. Ora però è indispensabile che le celle arrivino in sequenza, e non è più possibile alternare diverse cs-pdu., demandando il riconoscimento dell’ultima cella di una stessa cs-pdu ad un bit del campo pt presente nell’header di cella atm. D’altra parte, la lunghezza della cs-pdu dell’aal 5 è multipla di 48 byte, aggiungendone un numero appropriato, oltre ai 64 byte di intestazione (ora posta in coda), in cui ora sono presenti anche 8 bit di informazione da utente ad utente.
Ip su ATM classico
Allo stesso tempo in cui di diffonde l’uso di atm tra gli operatori di tlc, il tcp/ip emerge come lo standard comune per l’interconnessione tra elaboratori. Sebbene il tcp/ip si appoggi ad Ethernet in area locale, per i collegamenti a lunga distanza [393] [393]Quando la distanza tra i nodi oltrepassa dimensioni di un edificio, si parla di Campus Network o di Wide Area Network (wan), ed a volte è usato il termine Metroplitan Area Network (man) per estensione cittadine. Per estensioni ancora maggiori si parla di reti in area geografica. l’atm presenta indubbi vantaggi come la disponibilità di banda su richiesta, la coesistenza con il traffico di tipo diverso, l’elevata efficienza della commutazione, e la possibiltà di raggiungere diverse destinazioni. Una prima soluzione, subito scartata, fu quella nota come peer model, in cui i nodi atm possiedono un indirizzo ip, ed usano i protocolli di routing ip. Atm risulta così appaiata alla rete ip, ma ciò complica la realizzazione dei nodi atm, ed il metodo non si generalizza per protocolli diversi da ip.
L’alternativa seguita, detta overlay model, vede atm come uno stato di collegamento su cui opera l’ip, che si comporta come se si trovasse su di una lan. In particolare, solo i nodi di frontiera tra ip ed atm prendono un doppio indirizzo, ed individuano una Logical Subnet (lis) definita da uno stesso prefisso ip ed una stessa maschera di sottorete. Con riferimento alla figura che segue, quando il router di partenza vuole contattare il nodo di destinazione, trova (1) prima l’ip del router di destinazione, e quindi invia una richiesta arp al server atmarp presente nella lis [394] [394]Tutti i nodi della lis hanno configurato manualmente l’indirizzo atm del server atmarp., che risponde comunicando
l’indirizzo γ, il quale è così risolto (2). A questo punto si può instaurare una vcc con B mediante la segnalazione atm (3), ed effettuare la comunicazione (4). Questa soluzione è nota come vc multiplexing, ed i dati sono incapsulati direttamente nella cpcs-pdu di aal5. In ricezione, l’etichetta vpi/vci è usata per consegnare il pacchetto al protocollo di strato superiore che ha realizzato la connessione atm. D’altra parte, questa elaborazione deve avvenire a diretto contatto con aal5, e ciò preclude la possibilità di interlavoro con nodi esterni alla rete atm.
Nel caso in cui sia antieconomico creare un gran numero di vc, o se si dispone unicamente di un pvc [395] [395]Un vc permanente collega solamente una coppia di nodi, ed in tal caso è possibile anche fare a meno del server atmarp, in quanto un pvc è configurato manualmente. Nei fatti, questo è l’uso più diffuso del trasporto ip over atm, ed è tipicamente utilizzato per collegare sedi distanti di una stesso sistema autonomo, eliminando la necessità di sviluppare in proprio un impianto di tlc tra le sedi., il pacchetto ip viene incapsulato in un header llc ieee 802.2 prima di essere consegnato all’aal5. In tal modo, il router ricevente esamina l’header llc del pacchetto ricevuto dal nodo atm di egress, per consegnare il pacchetto al protocollo appropriato, realizzando così un trasporto multiprotocollo su atm.
LANE, NHRP e MPOA
Discutiamo qui brevemente ulteriori possibilità di utilizzo di atm come trasporto ip, ma a cui verosimilmente sarà preferito l’mpls.
Mentre l’approccio classico aggiunge un substrato tra ip ed aal5, per così dire esterno alla rete atm, l’approccio lane (lan Emulation) ne aggiunge uno esterno alla rete ip, che crede di avere a che fare con una lan ethernet. In questo caso anziché una lis, si definisce una Emulated lan (elan), il cui esatto funzionamento prevede diversi passaggi [396] [396]La emulazione di una lan da parte della rete atm è possibile dopo aver definito per ogni elan un lan Emulation Server (les) a cui ogni lan Emulation Client (lec) si rivolge per conoscere l’indirizzo atm di un altro lec, a partire da suo indirizzo mac (la traduzione da ip a mac è già avvenuta tramite arp a livello ip). In una elan deve inoltre essere presente un dispositivo Broadcast and Unknown Server (bus) che diffonde a tutti i lec i pacchetti broadcast Ethernet (come ad es. le richieste arp), e che viene usato dai lec che devono inviare un broadcast. Infine, occorre un lan Emulation Configuration Server (lecs) che conosce, per ogni elan della rete atm, l’elenco dei lec, del les e del bus.
All’accensione di un lec, questo contatta il lecs (conoscendone l’indirizzo atm, oppure su di una vcc ben nota, o tramite segnalazione atm) per apprendere gli indirizzi atm del proprio les e del bus. Quindi, registra presso il les la corrispondenza tra i propri indirizzi mac ed atm. Quando un lec desidera inviare dati ad un altro lec, dopo averne risolto l’indirizzo atm interrogando il les, incapsula le trame ip con un header llc ieee 802.2 proprio come nel caso classico.
.
Sia nel caso classico che in quello lane, se due router ip sono su due lan (lis o elan) differenti (con prefissi differenti) la comunicazione tra i due deve necessariamente attraversare un terzo router ip, anche se esiste un collegamento diretto tra i primi due, tutto interno alla rete atm. La situazione è illustrata nella figura seguente, per il caso classico. Come possiamo notare, i router di partenza e di destinazione potrebbero dialogare direttamente tramite la rete atm, diminuendo il carico di traffico della
stessa, e risparmiando al router intermedio il compito di riassemblare e disassemblare i pacchetti ip in transito, oltre a riclassificarli ai fini del routing. Se i server atmarp delle due lis possono scambiarsi le proprie informazioni, il router di partenza può arrivare a conoscere l’indirizzo atm di quello di destinazione, e creare un collegamento diretto. Lo scambio delle corripondenze <ind. ip; ind. atm> avviene per mezzo del Next Hop Resolution Protocol (nhrp) tra entità indicate come nhrp Server (nhs), che possono appartenere ognuno a più lis, e che instaurano tra di loro un meccanismo di passa-parola [397] [397]I nhs risiedono su dispositivi che sono anche router ip, e che quindi mantengono aggiornate le tabelle di instradamento che indicano il prossimo salto (next hop) verso destinazioni ip. Le richieste di risoluzione atmarp per un certo indirizzo ip sono instradate mediante queste stesse tabelle, giungendo di salto in salto fino al router-nhs appartenente alla stessa lis dell’ip di destinazione, che conosce la risposta. Quest’ultima ripercorre all’indietro il percorso fatto dalla richiesta, fino alla sorgente. I router attraversati dal passa parola, ricordano (per un pò) le risposte trasportate, riducendo il traffico nhrp., per rispondere alle interrogazioni che ricevono. L’applicazione di un meccanismo in parte simile, porta nel caso delle elan alla definizione del Multi Protocol over ATM (mpoa [398] [398]Il metodo si basa su di un meccanismo indicato come flow detection, attuato dal ruoter ip-atm prossimo alla sorgente, che è in grado di accorgersi di traffico non sporadico diretto verso una medesima destinazione. Questo router impersona allora un mpoa Client (mpc), ed interroga un mpoa server (mps) per conoscere l’indirizzo atm della destinazione, in modo da creare un collegamento diretto. Ogni mps serve una o più elan, e gli mps comunicano tra loro mediante il nhrp.
L’mpoa realizza la separazione tra il calcolo dell’instradamento e l’inoltro dei dati. A differenza di un ruoter tradizionale, che svolge entrambi i compiti, l’mpc svolge solo l’inoltro verso l’indirizzo atm di destinazione, mentre quest’ultimo è fornito dall’mps, che si comporta quindi come un route server.
).
MPLS
Il Multi Protocol Label Switching (mpls) è una metodo di realizzare una trasmissione a circuito virtuale su reti ip, la cui architettura è descritta nella rfc 3031 dell’ietf, e che verrà esposto meglio in una prossima edizione. Qui illustriamo i legami che mpls presenta con atm.
Lo sviluppo di mpls ha origine dalle iniziative industriali tese a realizzare router internet economici di prestazioni elevate, e capaci di gestire la banda in modo appropriato. Lo ietf ha ricevuto il compito di armonizzare in una architettura standardizzata i diversi approcci, basati sul principio di inoltrare i pacchetti in base ad una etichetta (label) impostata dal primo router della rete, proprio come avviene in atm. Dato che erano già disponibili i dispositivi hardware per realizzare i nodi di switching atm, i primi prototipi hanno semplicemente utilizzato tali switch sotto il diretto controllo di un router IP, collegato ad altri simili tramite la rete atm. L’mpls è tuttavia più generale, sia verso l’alto (è multiprotocollo in quanto si applica oltre che ad ip, a qualunque altro strato di rete) che verso il basso (funziona indifferentemente dall’implementazione dello strato di collegamento, sia atm, ethernet od altro).
La label apposta dal primo mpls Router (lsr) dipende dalla destinazione ip del pacchetto; diverse destinazioni possono coincidere con una sola Forwarding Equivalence Class (fec) [399] [399]Nel routing IP tradizionale, una fec coincide con l’instradamento inviduato dal longest match., identificata da una singola label. Tutti i pacchetti di una stessa fec sono inoltrati verso il medesimo next hop, indicato dalla tabella di routing, indicizzata dalla label [400] [400]Nel routing ip convenzionale, per ogni router, la tabella di routing deve essere esaminata per intero per ogni pacchetto, alla ricerca del longest match tra le regole presenti.. Nella stessa tabella, si trova anche la nuova label da assegnare al pacchetto, prima di consegnarlo all’lsr seguente. In tutti i lsr successivi, il pacchetto non è riclassificato, ma solo inoltrato verso il next hop con una nuova label come ordinato dalla tabella di routing. Pertanto, è il primo lsr a decidere tutto il tragitto, ed i pacchetti di una stessa fec seguono tutti lo stesso Label Switched Path (lsp). In tal modo, gli switch possono essere più semplici, si possono stabilire instradamenti diversi per una stessa destinazione [401] [401]Il routing ip tradizionale opera su di una base hop-by-hop, e per questo non può tenere conto della provenienza. Quando due pacchetti per una medesima destinazione passano da uno stesso router, proseguono per lo stesso percorso. in base al punto di ingresso, così come le fec posso essere rese dipendenti non solo dalla destinazione, ma anche da altri parametri, come la classe di servizio richiesta.
L’associazione tra label e fec (ossia il next hop per i pacchetti con quella label) è stabilita dal lsr di destinazione [402] [402]Infatti, è la label del pacchetto ricevuto che determina il next hop, e quindi è quest’ultimo a definire la semantica della label presso i propri vicini., e cioè un lsr indica agli lsr dai quali si aspetta di ricevere traffico, quale label usare in corrispondenza delle fec per le quali conosce l’instradamento. Dato che la conoscenza di un istradamento è anche il prerequisito sulla cui base sono annunciate le informazioni di routing hop-by-hop in internet, il Label Distribution Protocol (ldp) può essere vantaggiosamente associato ai procolli di distribuzione delle informazioni di routing già esistenti (es. bgp). Le associazioni tra fec e label si propagano dunque fino ai nodi di ingresso, realizzando un reticolo di “alberi” di lsp, costituiti dagli lsp definiti da una stessa fec, e che convergono verso uno stesso egress a partire da diversi ingress. Nel nodo in cui più lsp si riuniscono, è possibile effettuare il label merging assegnando la stessa label ai pacchetti uscenti, riducendo così la dimensione delle tabelle di routing.
L’etichetta label su cui si basa l’mpls può genericamente consistere in un incapsulamento della pdu dello strato di rete, prima che questa sia passata allo strato di collegamento. Quando i lsr sono realizzati mediante switch atm, la label è efficacemente realizzata usando la coppia vpi/vci, realizzando i lsp come delle vcc. In questo caso però, sorgono problemi nel caso in cui si debba effettuare il merge di più lsp relative ad una stessa fec, che passano da uno stesso atm-lsr. Infatti, se un nodo adottasse in uscita una stessa label-vcc per differenti vcc entranti, le celle in cui sono segmentati i pacchetti ip, ed ora con uguale label-vcc, si alternerebbero, rendendo impossibile il riassemblaggio dei pacchetti. Per questo motivo, mpls può operare anche con lsr che non permettono il merging, e che possono quindi essere utilizzati assieme ad altri che ne sono capaci; in tal caso, l’lsr non-merging non è notificato automaticamente delle associazioni fec-label, ma gli viene comunicata una (diversa) label ogni volta che ne chiede una (da associare ad una fec), usando così più label del necessario. Una alternativa, è quella di codificare la fec mediante il solo vpi, ed usare il vci per indicare il nodo di partenza. In questo modo, il merging è per così dire automatico, senza problemi di alternanza temporale delle celle di diversi pacchetti ip, ed il metodo può essere applicato se è possibile coordinare l’assegnazione dei vci tra sorgenti diverse, e se il numero delle label non oltrepassa la capacità di indirizzamento.
L’esposizione svolta è volutamente semplificata, e trascura per comodità alcune importanti caratteristiche di mpls.
PrecSezione 8.5: Reti per trasmissione dati SuCapitolo 8: Traffico, code e reti a pacchetto Capitolo 9: Densità spettrale e filtraggioSegue